﻿/**
 * 为根据元数据生成的表单提供一些帮助方法。
 */
Ext.define('Happy.form.metadata.mixin.FormHelper', {

    /**
     * 根据元数据创建表单 items。
     * 
     * @protected
     */
    autoCreateItems: function () {
        var me = this;

        var items = Ext.clone(me.metadata.getDefaultFormItems());
        me.customConfigArray(items, 'name', 'config-item-');
        me.callScene('configItems', [items]);

        return items;
    },

    /**
     * 根据元数据创建 buttons。
     * 
     * @protected
     */
    autoCreateButtons: function () {
        var me = this;

        var actions = [
            {
                type: 'save',
                remoteSave: me.metadata.isLifeCycleIndependent()
            },
            {
                type: 'close'
            }
        ];
        me.customConfigArray(actions, 'type', 'config-button-');
        var buttons = Happy.createActions(actions);
        me.callScene('configButtons', buttons);

        return buttons;
    },

    /**
     * 创建当前表单相关的 items，如：订单的订单项列表。
     *
     * @protected
     */
    autoCreateRelatedItems: function () {
        var me = this;

        return me.callScene('getRelatedItems', arguments);
    }
});